home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gigantic Games 2
/
Gigantic Games 2.iso
/
pc
/
_n_
/
nikolaus
/
nikolaus.lst
< prev
next >
Wrap
File List
|
1994-12-23
|
8KB
|
262 lines
' *******************************
' * Das Haus des Nikolaus V1.00 *
' * © 1992 by henry König *
' * Bornheide 71, 2 hamburg 53 *
' *******************************
init ! Bildschirm und Fenster öffnen
farben.setzen ! Farben setzen
menueein ! Menüs einschalten
info ! Startinfo
programmkopf
ON MENU GOSUB menÜkontrolle
REPEAT
SLEEP
UNTIL ende!
CLOSEW #1 ! Fenster schließen
CLOSES 1 ! Bildschirm schließen
END ! system
PROCEDURE auflÖsung !
programmkopf
PRINT AT(1,25);"Weiter mit Taste oder rechter Maustaste!"
PRINT AT(4,31);"Ich kenne auch keine andere Lösung!"
COLOR 3 ! rot
CIRCLE 100,160,2 ! Links unten
CIRCLE 100,80,2 ! Giebel links
CIRCLE 150,40,2 ! Giebel
CIRCLE 200,80,2 ! Giebel rechts
CIRCLE 200,160,2 ! rechts unten
CIRCLE 150,120,2 ! Hausmitte
COLOR 5 ! gelb
LINE 100,160,100,80 ! linke Hauswand
tastendruck
LINE 100,80,150,40 ! zum Giebel
tastendruck
LINE 150,40,200,80 ! zur rechten Hauswand
tastendruck
LINE 200,80,100,80 ! nach links
tastendruck
LINE 100,80,200,160 ! nach unten rechts
tastendruck
LINE 200,160,100,160 ! zur linken hauswand
tastendruck
LINE 100,160,200,80 ! nach rechts oben
tastendruck
LINE 200,80,200,160 ! rechte Hauswand
tastendruck
RETURN
PROCEDURE beenden ! Programm beenden
ALERT 0,"Wollen Sie aufhören",1,"Ende|Weiter",wahl%
ende!=(wahl%=1)
RETURN
PROCEDURE daten ! Daten für Menüs und Anweisungen
menue.daten:
DATA "Projekt "
DATA "+I Info "
DATA " Spiel starten "
DATA " Auflösung "
DATA "+Q Programm beenden "
DATA ""
DATA "*"
RETURN
PROCEDURE info
programmkopf
PCOLOR 3,0
PRINT AT(10,13);"© 1992 by Henry König,"
PRINT AT(5,15);"Bornheide 71, 2000 Hamburg 53"
PCOLOR 1,0
PRINT AT(2,18);"Dieses Programm darf kopiert werden"
PRINT AT(2,20);"und in jede PD-Serie übernommen werden."
tastendruck
RETURN
PROCEDURE mauss ! Punkte an Mausposition zeichnen
CLR neu% ! Einstiegswert für die Schleife
COLOR 5
WHILE neu%=0
mausk%=MOUSEK ! Mausknopf
x=MOUSEX ! Rechtswert der Maus
y=MOUSEY ! Hochwert der Maus
IF mausk% THEN ! Mausknopf gedrückt?
LINE x,y,MOUSEX,MOUSEY ! ja, dann Punkt (Linie) zeichnen
ENDIF
IF x>225 AND x<=300 AND y>=175 AND y<=200 AND mausk% THEN ! NEU-Taste
neu%=1 ! Neu-Schalter zum Abbruch setzen
ENDIF
WEND
COLOR 1,0 ! weiß auf grauen Grund
PCOLOR 1,0 ! weiße Schrift auf grauen Grund
RETURN
PROCEDURE menÜkontrolle ! Hauptmenü
mn%=MENU(0) ! Menüpunkt
SELECT mn%
CASE 1
info
CASE 2
CLR neu%
programmkopf
startbild ! Startbild zeichnen
tastendruck ! auf Tastendruck warten
zeichnen ! Zeichenfeld zeichen und Zeichnen
CASE 3
auflÖsung
CASE 4
beenden
ENDSELECT
programmkopf
RETURN
PROCEDURE menueein ! Menüs einschalten
MENU KILL
RESTORE menue.daten
FOR menue%=0 TO 10
READ x$
EXIT IF x$="*"
menue$(menue%)=x$
NEXT menue%
DEC menue% !
menue$(menue%+6)=""
menue$(menue%+7)=""
MENU menue$()
RETURN
PROCEDURE programmkopf
CLS
COLOR 2 ! schwarze Box
PBOX 1,1,319,20
COLOR 0 ! grau
PBOX 6,4,316,17
COLOR 4 ! hellgrau
LINE 6,4,316,4
LINE 6,4,6,17
PCOLOR 5,0
PRINT AT(2,2);"D a s H a u s d e s N i k o l a u s"
PCOLOR 1,0
programmfuss
RETURN
PROCEDURE programmfuss ! Anweisungsboxen zeichnen
COLOR 2 ! schwarz
PBOX 1,(27*8)-10,319,(32*8) ! schwarze Box
COLOR 0 ! grau
PBOX 6,(27*8)-7,316,(28*8)+4 ! graue Box
PBOX 6,(29*8)+2,316,(32*8)-4 ! 2. graue Box
COLOR 4 ! hellgrau
BOX 7,(27*8)-7,316,(32*8)-3
LINE 7,(29*8)+2,316,(29*8)+2
LINE 16,(29*8)-6,319-16,(29*8)-6
LINE 16,(29*8)+5,319-16,(29*8)+5
LINE 319-16,(29*8)-6,319-16,(26*8)+4 ! senkrechter Strich
LINE 16,(29*8)+5,16,(31*8)+2 ! senkrechter Strich
COLOR 2 ! schwarz
LINE 7,(32*8)-3,316,(32*8)-3 ! schwarze Linie
LINE 316,(27*8)-7,316,(32*8)-3
LINE 16,(27*8)-4,319-16,(27*8)-4
LINE 16,(31*8)+2,319-16,(31*8)+2
LINE 16,(29*8)-6,16,(26*8)+4 ! senkrechter Strich
LINE 319-16,(29*8)+5,319-16,(31*8)+2 ! senkrechter Strich
RETURN
PROCEDURE startbild
PCOLOR 5,0 ! gelb
PRINT AT(1,5);"Sie kennen doch bestimmt das Haus vom "
PRINT AT(1,6);"Nikolaus. Versuchen Sie doch einmal"
PRINT AT(1,7);"das Haus mit vier Giebeln";
PCOLOR 3,0
PRINT " (rote Linien)"
PCOLOR 5,0 ! gelb
PRINT AT(1,8);"ohne abzusetzen u. ohne doppelte Linien,"
PRINT AT(1,9);"zu zeichnen."
COLOR 5 ! gelb
FOR x=0 TO 60 STEP 0.5
PLOT 180-x,180
NEXT x
FOR x=0 TO 60 STEP 0.5
PLOT 120,180-x
NEXT x
FOR x=0 TO 30 STEP 0.5
PLOT 120+x,120-x
NEXT x
FOR x=0 TO 30 STEP 0.5
PLOT 150+x,90+x
NEXT x
FOR x=0 TO 60 STEP 0.5
PLOT 180-x,120
NEXT x
FOR x=0 TO 60 STEP 0.5
PLOT 120+x,120+x
NEXT x
FOR x=0 TO 60 STEP 0.5
PLOT 180,180-x
NEXT x
FOR x=0 TO 60 STEP 0.5
PLOT 180-x,120+x
NEXT x
COLOR 3 ! rot
LINE 90,150,120,120
LINE 90,150,120,180
LINE 120,180,150,210
LINE 150,210,180,180
LINE 180,180,210,150
LINE 180,120,210,150
RETURN
PROCEDURE taste ! ein Zeichen von der Tastatur holen
CLR x% ! Steuerzeichen löschen
CLR mausk%
CLR mausx% ! Mausspalte löschen
CLR mausy% ! Mauszeile löschen
WHILE x%=0 AND MOUSEK=0
x$=INKEY$ ! Zeichen von Tastatur
x%=ASC(x$) ! ASCII-Wert für Auswertung
WEND
IF MOUSEK<>0 THEN ! linke Maustaste
mausx%=MOUSEX ! ja, dann Spalte = mausx
mausy%=MOUSEY ! Zeile = mausy
mausk%=MOUSEK ! Maustaste
ENDIF
RETURN
PROCEDURE tastendruck
PRINT AT(4,28);SPACE$(34);
PCOLOR 5,0
PRINT AT(4,28);" Weiter mit Taste oder Mausklick."
taste
PCOLOR 1,0
PRINT AT(4,28);SPACE$(32)
RETURN
PROCEDURE zeichnen ! Zeichenfeld zeichnen
programmkopf
COLOR 2
PBOX 225,175,300,200
COLOR 3
BOX 225,175,300,200
COLOR 3
BOX 226,176,299,199
PCOLOR 1,2
PRINT AT(30,24);"Abbruch" ! Abbruchbox
' Punkte auf den Bildschirm zeichnen
CIRCLE 150,40,2
CIRCLE 150,200,2
CIRCLE 60,120,2
CIRCLE 240,120,2
CIRCLE 100,80,2
CIRCLE 150,120,2
CIRCLE 100,160,2
CIRCLE 200,160,2
CIRCLE 200,80,2
mauss ! zur Zeichenroutine
RETURN
PROCEDURE init ! Bildschirm und Fenster öffnen
DIM menue$(20)
breite%=320 ! Screenbreite
hoehe%=256 ! Screenhöhe
ebenen%=3 ! 3 Bitplanes
OPENS 1,0,0,breite%,hoehe%,ebenen%,&H0
OPENW #1,0,0,breite%,hoehe%,&H18,&H1800,1
farben.setzen ! Farbpalette setzen
RETURN
PROCEDURE farben.setzen ! Farbpalette setzen
SETCOLOR 0,5,5,5 ! grau statt blau
SETCOLOR 1,15,15,15 ! weiß bleibt
SETCOLOR 2,0,0,0 ! schwarz erhalten
SETCOLOR 3,15,5,0 ! rot bleibt
SETCOLOR 4,10,10,10 ! hellgrau inverse Farbe im Filerequester
SETCOLOR 5,15,15,0 ! gelb
SETCOLOR 6,0,0,0 ! schwarz = Inverse Farbe im Filerequester
RETURN
REM ! damit der Interpreter beim Kopieren nicht
REM ! abstürzt